1. Field of the Invention
The present invention is directed to systems, such as voice messaging systems, in which prompts are played to users during execution of a call flow, and more particularly, to apparatus and methods for providing enhanced multi-lingual prompt management in such a system, with support for speech recognition.
2. Description of the Prior Art
U.S. Pat. No. 5,133,004, issued Jul. 21, 1992 and assigned to the assignee of the present invention, describes a Network Applications Platform (NAP) commercially available from UNISYS Corporation. The NAP is a configuration of hardware and system software that provides data and voice processing capabilities through applications running on an enterprise server. The NAP provides the interface between these applications, called network applications, and a telephone network. Network applications running on the NAP can provide enhanced services for telephone networks, such as Call Answer, Call Forward, Voice Store and Forward, Voice Mail, Bank By Phone, Emergency Number Facilities, Directory Assistance, Operator Assistance, Call Screening, Automatic Wake-up Services, and the like. In one embodiment, the NAP is implemented on a UNISYS A Series digital computer system. Details of the structure and function of the NAP are provided in U.S. Pat. No. 5,133,004, which is hereby incorporated by reference in its entirety.
A network application, such as a voice mail application, consists of one or more call flows which determine the functionality of the application. A call flow defines how a call is processed from the time it is connected until it is disconnected. It determines how an application will react to various telephony-related events. In particular, a call flow specifies each function or processing step to be executed during a telephone call, the possible results for each function, the decision path to be followed based on the result, and each prompt or voice message to be played during the course of the telephone call.
For example, in a voice mail application, the call flows present certain prompts to a user and allow the user to select certain functions in response. For example, a user might enter the voice mail application and receive a prompt that states "you have &lt;number&gt; new messages." Another prompt might inform the user to "press 1 to review the message, press 2 to save the message, press 3 to delete the message . . . "The user can then make the appropriate choice using the telephone key pad.
A prompt is composed of and defined by a sequence of static and dynamic elements. A static element denotes a fixed phrase, whereas a dynamic element provides a location in the prompt for variable data to be provided by the network application at run time. For example, in the prompt "you have &lt;number&gt; new messages", the phrases "you have" and "new messages" are static elements whereas &lt;number&gt; is a dynamic element to be provided by the network application in accordance with the conditions at run time. The voice for the static elements are recorded in a NAP Voice File and are each assigned a unique Message ID as explained in said U.S. Pat. No. 5,133,004. The Message IDs are provided in a database for reference when it is desired to play a prompt.
A user defines the prompts for a given network application as ordered sequences of specific static elements and dynamic element types. These prompt definitions are stored in records in a database. These records are used by a prompt expansion processor (PEP) in the NAP to expand the prompts for playback in a given network application. A network application invokes the playing of a prompt by issuing a command to the PEP naming the prompt and supplying the specific dynamic data appropriate to the run time condition. The PEP expands the command into the sequence of NAP Message IDs appropriate to play the prompt. The Message IDs are then loaded into a NAP command that is executed by the NAP to play back the actual recorded voice elements stored in the NAP Voice File.
U.S. Pat. No. 5,493,606, issued Feb. 20, 1996 and also assigned to the assignee of the present invention, describes an enhanced prompt management system for NAP that provides multi-lingual capability for the prompts of a network application without the necessity of significant network application programming changes or modification to the PEP. The prompt management system described therein comprises a Speech Interface to NAP (SPIN) in combination with the Prompt Expansion Processor (PEP) with a Modular Dynamic Data Processor (MDDP). The system is referred to as SPIN/PEP. SPIN is a program used through NAP on behalf of a network application to create or modify the prompts and the elements of the prompts to be played by the network application in a predetermined spoken language. The elements of the prompts are ordered in accordance with the syntax, grammar and phraseology of the particular spoken language. The voice for the elements can be recorded through NAP and stored in the NAP Voice File. The NAP Message IDs corresponding to the recorded voice elements are stored in a SPIN Data Base (SPINDB). The SPIN user creates or modifies a Dynamic Element Table containing ordered lists of logically grouped dynamic elements required for the prompts of the network application. The MDDP defines the order and manner in which dynamic data within a dynamic element is spoken in accordance with the syntax, grammar and phraseology of the particular spoken language. The created or modified prompt, element voice, Dynamic Element Table and MDDP information set for a spoken language is denoted as a SPIN application for the particular spoken language. The SPIN user can copy and modify an existing SPIN application for one spoken language to provide another SPIN application for another spoken language. The SPIN application is created or modified by the user utilizing interactive SPIN screens. SPIN runs on the same UNISYS A Series computer on which the NAP is implemented.
The network application issues a PEP command to send a prompt, e.g., an Enhanced Send Prompt (ESP) command or an Enhanced Multi-Send Prompt (EMSP) command, to PEP for expansion, the command designating the ID of the SPIN application to be utilized, the prompt to be played and the specific dynamic data to be utilized. The PEP, using the designated SPIN application information, expands the prompt into its static and dynamic elements converting the static elements into the corresponding NAP Message IDs. The dynamic data is sent to the MDDP which in combination with the Dynamic Element Table expands the dynamic elements into the corresponding NAP Message IDs. The PEP returns an ordered list of the NAP Message IDs which are used in a NAP Send Voice Message command to play the prompt over the telephone. The prompt management system of U.S. Pat. No. 5,493,606 thus permits a network application to play a designated prompt in a selectable spoken language without altering the functional code of the network application nor the operation code of the underlying PEP. The network applications share the same PEP.
It would be advantageous for a network application developer to be able to define subsets of prompts associated with a particular language within a single network application, where each subset contains only those prompts that apply during a particular part of a call flow. Additionally, different subsets could present modified forms of certain prompts, so that slightly different versions of certain prompts could be played at a particular point in a call flow depending upon the circumstances. For example, one call state in a call flow may specify that a prompt is to be played that says "Press `1` on your key pad to review your messages." It would be desirable to be able to play alternate prompts at that call state, depending upon the circumstances of the call. For example, in a system that supports speech recognition, if that capability were enabled, it might be necessary to instead play a prompt at that point that says "To review your messages, say `REVIEW`". Another situation in which it might be desirable to play a modified form of prompt at a particular call state is when the user of the network application is familiar enough with the application that the prompts can be abbreviated. In the example above, an abbreviated prompt at that same point in the call flow might say "Press 1 to review." The user doesn't need any more information and is likely to appreciate the brevity of the prompt.
At present, the prior art does not teach any efficient way to provide the above capabilities. In the prior art, in order to provide modified forms of certain prompts at certain portions of a call flow, the network application developer either must provide a complete set of prompts for each circumstance (e.g., speech recognition, abbreviated prompts, etc.), even though many prompts would not need to be changed, or must create a completely different call flow and/or network application to provide the capability. Accordingly, there is a need for an efficient way to provide network application developers with the ability to play modified forms of certain prompts at different points of a call flow, without requiring any reprogramming or other modifications to the call flow. The present invention satisfies this need.